// useFunctionalTypes.ts

// Predicate 接口表示一个条件判断函数
export type Predicate<T> = (value: T) => boolean;

// BiFunction 接口表示一个接受两个参数并返回结果的函数
export type Function<T, R> = (a: T) => R;
export type Consumer<T> = (value: T) => void;
export type BiFunction<T, U, R> = (a: T, b: U) => R;
// Consumer 接口表示一个接受参数但不返回任何值的函数

// BiConsumer 接口表示一个接受两个参数但不返回任何值的函数
export type BiConsumer<T, U> = (value1: T, value2: U) => void;
// Supplier 接口表示一个不接受任何参数但返回结果的函数
export type Supplier<R> = () => R;
